<#-- 指令 -->
<#-- 一、条件指令，-->
-------------------------------------------------
1.if elseif else ，注意，elseif else是包在if里面的
<#--  1.if elseif else ，注意，elseif else是包在if里面的 -->
<#assign age=18>
<#--  <#if age gt 18 >-->
<#if (age > 18) >
成年了
<#elseif age==18>
即将成年
<#else>
太小了
</#if>
<#assign booleanVal=true>
<#if booleanVal >
这是true
</#if>
-------------------------------------------------
2.switch case break
<#-- 2.switch case break -->
<#assign level="B">
<#switch level>
	<#case "A">
	优秀
	<#break>
	<#case "B">
	很好
	<#break>
</#switch>

-------------------------------------------------
二、循环指令list，遍历的时候会产生两个内置变量,
<#-- 二、循环指令list，遍历的时候会产生两个内置变量,
		变量名_index ：当前的下标
		变量名_has_next：是否还有下一个值
  -->
<#assign nums=[3,6,5,7,2]>
<#list nums as num1>
第${num1_index}个:${num1},<#if num1_has_next>还有下一个</#if>
<#if num1_index==3>
<#break><#-- 中断循环 -->
</#if>
</#list>

-------------------------------------------------
三、包含指令，二者之间可以共享变量，注意应该先定义了才能使用,
	    这里两个模板文件在同一个目录，如果不在同一个目录，可以使用相对路径引入，
	    也可以使用*/004_head.ftl来找项目中的这个文件
<#-- 三、包含指令，二者之间可以共享变量，注意应该先定义了才能使用,
	    这里两个模板文件在同一个目录，如果不在同一个目录，可以使用相对路径引入，
	    也可以使用*/004_head.ftl来找项目中的这个文件
-->
<#assign outvar="外部变量">
<#include "004_head.ftl">
内部变量：
${innervar}
<#--${innervar} -->

-------------------------------------------------
四、不解析标签指令noparse,类似于XML中CDATA，
		里面的指令会被当做普通文本输出
<#-- 四、不解析标签指令noparse,类似于XML中CDATA，
		里面的指令会被当做普通文本输出 -->
使用freemarker noparse 指令 语法
<#noparse>
	<#assign aaa=4>
	${aaa}
	<font color='red' >html标签</font>
</#noparse>
noparse 指令  进行解析之后：
	<#assign aaa=4>
	${aaa}
	<font color='red' >html标签</font>

-------------------------------------------------
五、compress压缩指令,会去掉文本中的空格和换行符
<#-- 五、compress压缩指令,会去掉文本中的空格和换行符 -->
<#assign cc="   test \n\n   aa">
${cc}
测试结束
<#compress>
${cc}	
</#compress>
压缩结束

-------------------------------------------------
六、设置属性指令setting，可以设置语言、本地化等信息
		这里把本地化设置成匈牙利，匈牙利里面小数点会显示成逗号
<#-- 六、设置属性指令setting，可以设置语言、本地化等信息
		这里把本地化设置成匈牙利，匈牙利里面小数点会显示成逗号
  -->
<#setting locale="hu"/>
${1.2}

-------------------------------------------------
七、自定义指令
<#-- 七、自定义指令
		可以使用自定义指令把重复的内容进行复用，类似于JAVA里面的方法封装，
		①.自定义指令需要用到两个指令：macro、nested
		②.调用使用<@指令>语法
-->
<#-- 1.不带参数 -->
<#macro zhiling1>
这是自定义指令
</#macro>
<@zhiling1/>

-------------------------------------------------
2.携带参数，定义的时候，可以给参数默认值，这样就可以不传递这个参数
<#-- 2.携带参数，定义的时候，可以给参数默认值，这样就可以不传递这个参数 -->
<#macro zhiling2 name age=80>
我是${name},年龄是${age}
</#macro>
<@zhiling2 name="liuxing" age=30/>
<@zhiling2 name="liuxing"/>

-------------------------------------------------
3.使用local指令定义局部变量，不能被外面使用，使用assign定义的变量，外部可以使用
<#-- 3.使用local指令定义局部变量，不能被外面使用，使用assign定义的变量，外部可以使用 -->
<#macro zhiling3>
	<#local i=4>
	${i}
	<#assign mi=6>
</#macro>
<@zhiling3/>
<#--${i}-->
${mi}
-------------------------------------------------
4.双标签的时候，嵌入标签中的内容，可以重复引用
<#-- 4.双标签的时候，嵌入标签中的内容，可以重复引用 -->
<#macro zhiling4>
	引入内容，
	第一遍：<#nested>
	第二遍：<#nested>
</#macro>
<@zhiling4>
nested 指令 输出的内容
当被调用的时候，才能决定此处的内容是什么。
</@zhiling4>

<#macro hello>
	你好，<#nested>,<#nested>
</#macro>
<@hello>
世界
</@hello>

<@hello>
中国
</@hello>

<@hello>
北京
</@hello>
-------------------------------------------------